package com.yxj.checksystempicture.u;

import java.util.HashSet;
import java.util.Set;

public class FileTypeUtils {
    // 常见视频文件扩展名集合（可根据需求扩展）
    private static final Set<String> VIDEO_EXTENSIONS = new HashSet<String>() {{
        add(".mp4");
        add(".avi");
        add(".mkv");
        add(".mov");
        add(".wmv");
        add(".flv");
        add(".mpeg");
        add(".mpg");
        add(".3gp");
        add(".webm");
        add(".m4v");
        add(".rmvb");
        add(".m3u8"); // 流媒体播放列表（常用于视频）
    }};

    /**
     * 根据文件路径判断是否为视频文件
     * @param filePath 文件路径
     * @return true: 视频文件；false: 非视频文件或路径无效
     */
    public static boolean isVideoFile(String filePath) {
        if (filePath == null || filePath.trim().isEmpty()) {
            return false;
        }

        // 转换为小写，避免大小写问题
        String lowerCasePath = filePath.toLowerCase();

        // 查找最后一个句点（.）的位置，确定扩展名
        int dotIndex = lowerCasePath.lastIndexOf('.');
        if (dotIndex == -1) {
            return false; // 无扩展名
        }

        String extension = lowerCasePath.substring(dotIndex);
        return VIDEO_EXTENSIONS.contains(extension);
    }

    /**
     * 扩展视频文件类型（动态添加扩展名）
     * @param extension 扩展名（需包含点号，如".mkv"）
     */
    public static void addVideoExtension(String extension) {
        if (extension != null && extension.startsWith(".")) {
            VIDEO_EXTENSIONS.add(extension.toLowerCase());
        }
    }
}